// 导入express模块
const express = require('express')

// 创建一个express的服务器实例对象
const app = express()


// 导入并配置cors中间件
const cors = require('cors')
// 使用cors解决跨域问题
app.use(cors())

// 解析application/json 格式的表单数据
app.use(express.json())

// 在路由之前封装res.cc函数
app.use((req,res,next) => {
  // code默认值为 0 表示失败的情况 200代表成功
  // err的值 可能是一个错误的对象 也可能是一个错误的描述字符串
  res.cc = function(err, code = 0){
    res.send({
      code,
      msg: err instanceof Error ? err.message : err,
    })
  }
  next()
})

// 在路由之前配置解析Token的中间件
const expressJWT = require('express-jwt')
const config = require('./config')
// 除了login外 其余要加路由守卫
app.use(expressJWT({secret: config.jwtSecretKey}).unless({path:[/^\/login/]}))
// if(err.name === 'UnauthorizedError') return res.cc('身份验证失败') 


// web端的处理模块
// 导入并使用登录路由模块
const loginRouter = require('./router/login.js')
app.use(loginRouter)

// 导入并使用登录路由模块
const workerRouter = require('./router/worker.js')
app.use(workerRouter)

// 导入并使用维修申请模块
const addmaintenanceRouter = require('./router/addmaintenance.js')
app.use(addmaintenanceRouter)

// 导入并使用运维列表模块
const operationRouter = require('./router/operation.js')
app.use(operationRouter)

// 导入并使用添加管道模块
const addpipeRouter = require('./router/addpipe.js')
app.use(addpipeRouter)

// 导入并使用主页模块
const homeRouter = require('./router/home.js')
app.use(homeRouter)

// 导入并使用大屏可视化模块
const bigscreenRouter = require('./router/bigscreen.js')
app.use(bigscreenRouter)



// 小程序的处理模块
// 导入并使用登录模块
const loginRouter = require('./xcx_router/login.js')
app.use(loginRouter)

// uni-app的处理模块


// 调用app.listen方法 指定端口号并且启动服务器
app.listen(3007,function () {
  console.log('api server runing at http://127.0.0.1:3007')
})